package gui.nodes;

import gui.TreeController;

import javax.swing.tree.DefaultMutableTreeNode;

/**
 * Noeud de l'arbre de contrôle.
 */
public abstract class AbstractNode extends AbstractLeaf {

	public AbstractNode() {
		this.add(new DefaultMutableTreeNode()); // Nécessaire pour permettre l'expansion du noeud - ne sera jamais affiché
	}

	/**
	 * Appelé à chaque expansion du noeud.
	 */
	public abstract void expandHook();

	/**
	 * Recharge le contenu du noeud.
	 */
	public void refresh() {
		expandHook(); /* Charger la liste actualisée de noeud */
		TreeController.getInstance().refresh(this); /* Rafraîchir l'arbre */
	}
}
